1
Oltre le Coppie: Raggruppamento Multitipo con Tuple
AI037Lesson 19
00:00

Nell'architettura di sistemi C++ su larga scala, definire una struttura formale struct per ogni raggruppamento temporaneo di dati è spesso eccessivo. La std::tuple funge da contenitore eterogeneo, generalizzando std::pair per contenere un numero arbitrario di tipi diversi.

1. Costruzione e Vincoli

A differenza dei contenitori standard, il tuple costruttore è esplicito. Non puoi usare l'inizializzazione tramite copia con una lista; devi usare l'inizializzazione diretta o std::make_tuple.

tuple<int, double> t1{1, 2.5}; // OK
tuple<int, double> t2 = {1, 2.5}; // Errore!

2. Accesso e Introspezione

I membri sono accessibili tramite get<i>(nome_tuple), dove i deve essere un'espressione costante nota al momento della compilazione. I metadati possono essere interrogati tramite tuple_size e tuple_element usando decltype.

Struttura della Memoria di std::tuplestringaget<0>intget<1>doubleget<2>

3. Logica Relazionale

Le tuple sono confrontate lessicograficamente. Il confronto è valido solo se entrambe le tuple hanno lo stesso numero di elementi e i rispettivi tipi supportano gli operatori relazionali.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>